package hot;

import java.util.ArrayList;
import java.util.List;

public class Num98 {
//    public boolean isValidBST(TreeNode root) {
//        return isValid(root,Long.MIN_VALUE,Long.MAX_VALUE);
//    }
//    private boolean isValid(TreeNode root,long lower,long upper) {
//        if(root == null) return true;
//        if(root.val <= lower || root.val >= upper) {
//            return false;
//        }
//        return isValid(root.left,lower,root.val) && isValid(root.right,root.val,upper);
//    }
List<Integer> res = new ArrayList<>();
    public boolean isValidBST(TreeNode root) {
        inorderTraversal(root);
        int n = res.size();
        for(int i = 1; i < n; i++) {
            if(res.get(i) <= res.get(i - 1)) return false;
        }
        return true;
    }
    public void inorderTraversal(TreeNode root) {
        if(root == null) return;
        inorderTraversal(root.left);
        res.add(root.val);
        inorderTraversal(root.right);
    }
}
